' 
' Copyright (C) 2014 Infinity CCS Ltd (http://www.infinityccs.com/)
' Copyright (C) 2008 Sasa Coh <sasacoh@gmail.com>
'
' This program is free software; you can redistribute it and/or modify
' it under the terms of the GNU General Public License as published by
' the Free Software Foundation; either version 3 of the License, or
' (at your option) any later version.
'
' This program is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
' GNU General Public License for more details.
'
' You should have received a copy of the GNU General Public License
' along with this program.  If not, see <http://www.gnu.org/licenses/>. 
'/


Imports System
Imports System.Collections.Generic
Imports System.Text

Namespace Common.Config
  ''' <summary>
  ''' IConfigurator defines data access interface.
  ''' </summary>
  Public MustInherit Class IConfigurator
    ''' <summary>
    ''' Do Not Disturb Property
    ''' </summary>
    MustOverride Property DNDFlag As Boolean
    ''' <summary>
    ''' Auto Answer property
    ''' </summary>
    MustOverride Property AAFlag As Boolean
    ''' <summary>
    ''' Sip listening port property
    ''' </summary>
    MustOverride Property SIPPort As Integer

    ''' <summary>
    ''' List of all codecs
    ''' </summary>
    MustOverride Property CodecList As List(Of String)

    ''' <summary>
    ''' Flag to enable publish method (user status)
    ''' </summary>
    MustOverride Property PublishEnabled As Boolean

    MustOverride Property DefaultAccountKey As String

    MustOverride ReadOnly Property Account(strKey As String) As IAccount

    MustOverride ReadOnly Property Account(pjsipIndex As Integer) As IAccount

    MustOverride ReadOnly Property AccountKeys As List(Of String)

    MustOverride ReadOnly Property IsNull As Boolean

#Region "Public Methods"

    ''' <summary>
    ''' Save settings 
    ''' </summary>
    MustOverride Sub Save()
#End Region 'Methods

  End Class



End Namespace
